<script setup lang="ts">
const { money = 5000 } = defineProps<{
    money: number
}>()

// JS 的实现方式
// const emits = defineEmits(["add", 'reduce'])
// TS 的实现方式
// 1. 使用 defineEmits 接收父组件的方法
// 2. 接收时候，传递泛型参数(描述方法的类型)
//  (e: "add", val: number): void
const emits = defineEmits<{
    (e: "add", val: number): void,
    (e: "reduce", val: number): void,
}>()

const add = () => {
    emits("add", 1000)
}

const reduce = () => {
    emits("reduce", 2000)
}
</script>

<template>
    <h1>子组件 - {{ money }}</h1>
    <button @click="add">点我加1000</button>
    <button @click="reduce">点我扣2000</button>
</template>